package com.example.demo.controller;

import com.example.demo.model.UserInfo;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
@Controller
@ResponseBody
public class UserController {
    //  需要使用 Service，需要进行注入
    @Autowired
    private UserService userService;

    @RequestMapping("/getall")
    public List<UserInfo> getAll(){
        return userService.getAll();
    }
    @RequestMapping("/getall2")
    public List<UserInfo> getAll2(String order){
        return userService.getAll2(order);
    }
    // 目的是返回受影响的行数
    @RequestMapping("/add")
    public int add(UserInfo userInfo){  // 使用对象来接受参数
        // 控制层进行参数校验
        if(userInfo==null
                || userInfo.getName()==null
                || userInfo.getPassword()==null
                || userInfo.getName().equals("")
                || userInfo.getPassword().equals(""))
        {
            return 0;
        }
        return userService.add(userInfo);
    }
    // 目的是返回自增的id
    @RequestMapping("/add2")
    public int add2(UserInfo userInfo){  // 使用对象来接受参数
        // 控制层进行参数校验
        if(userInfo==null
                || userInfo.getName()==null
                || userInfo.getPassword()==null
                || userInfo.getName().equals("")
                || userInfo.getPassword().equals(""))
        {
            return 0;
        }
        userService.add2(userInfo);
        // 返回插入数据生成的 id
        return userInfo.getId();
    }
    /**
     * 修改密码
     * */
    @RequestMapping("/update")
    public int updatePassword(UserInfo userInfo) {
        // 参数校验
        if (userInfo == null || userInfo.getId() <= 0
            || userInfo.getPassword()==null
            || userInfo.getPassword().equals(""))
        {
            return 0;
        }
        return userService.updatePassword(userInfo);
    }

    /**
     * 删除操作
     * */
    @RequestMapping("/del")
    public int del(Integer id){
        // 参数校验
        if(id==null || id<=0){
            return 0;
        }
        return userService.del(id);
    }

    // 参数占位符
    @RequestMapping("/findbyname")
    public List<UserInfo> findbyname(String name){
        // 参数校验
        if(name==null || name.equals("")){
            return null;
        }
        return userService.findbyname(name);
    }
}
